package com.zmn.plat.common.dictionary;

import com.google.common.collect.Lists;
import com.zmn.common.dictionary.DictModel;
import com.zmn.common.utils.string.StringUtil;
import com.zmn.plat.common.constant.ProductConsts;

import java.util.ArrayList;
import java.util.List;

/**
 * @author tanghongjun
 * @version v1.0
 * @since 2020年8月19日17:54:33
 **/
public class ProductDict {
    /**
     * 描述: 工程师技术等级 :1.试用 2.初级 3.中级 4.高级 5.特级 6.首席 code
     *
     * @return java.util.List<com.zmn.common.dictionary.DictModel>
     * @author wangjie
     * @since 2019/12/12
     **/
    public static List<DictModel> listBizType() {
        ArrayList<DictModel> arrayList = Lists.newArrayListWithExpectedSize(3);
        arrayList.add(new DictModel(ProductConsts.BIZ_TYPE_C, ProductConsts.BIZ_TYPE_C_EN_CN));
        arrayList.add(new DictModel(ProductConsts.BIZ_TYPE_F, ProductConsts.BIZ_TYPE_F_EN_CN));
        arrayList.add(new DictModel(ProductConsts.BIZ_TYPE_B, ProductConsts.BIZ_TYPE_B_EN_CN));
        return arrayList;
    }

    /**
     * 描述: 获取工程师技术等级名称
     *
     * @auther tanghongjun
     * @since 2019/11/20 10:18
     */
    public static String getBizTypeCNName(int bizType) {
        switch (bizType) {
            case ProductConsts.BIZ_TYPE_C:
                return ProductConsts.BIZ_TYPE_C_CN;
            case ProductConsts.BIZ_TYPE_F:
                return ProductConsts.BIZ_TYPE_F_CN;
            case ProductConsts.BIZ_TYPE_B:
                return ProductConsts.BIZ_TYPE_B_CN;
            default:
                return "";
        }
    }

    /**
     * 描述: 获取工程师技术等级名称
     *
     * @auther tanghongjun
     * @since 2019/11/20 10:18
     */
    public static String getBizTypeENName(int bizType) {
        switch (bizType) {
            case ProductConsts.BIZ_TYPE_C:
                return ProductConsts.BIZ_TYPE_C_EN;
            case ProductConsts.BIZ_TYPE_F:
                return ProductConsts.BIZ_TYPE_F_EN;
            case ProductConsts.BIZ_TYPE_B:
                return ProductConsts.BIZ_TYPE_B_EN;
            default:
                return "";
        }
    }

    /**
     * 描述: 获取工程师技术等级名称
     *
     * @auther tanghongjun
     * @since 2019/11/20 10:18
     */
    public static String getBizTypeCNENName(int bizType) {
        switch (bizType) {
            case ProductConsts.BIZ_TYPE_C:
                return ProductConsts.BIZ_TYPE_C_EN_CN;
            case ProductConsts.BIZ_TYPE_F:
                return ProductConsts.BIZ_TYPE_F_EN_CN;
            case ProductConsts.BIZ_TYPE_B:
                return ProductConsts.BIZ_TYPE_B_EN_CN;
            default:
                return "";
        }
    }

    // /**
    //  * 描述: 工程师技术等级 :1.试用 2.初级 3.中级 4.高级 5.特级 6.首席 code
    //  *
    //  * @return java.util.List<com.zmn.common.dictionary.DictModel>
    //  * @author wangjie
    //  * @since 2019/12/12
    //  **/
    // public static List<DictModel> listBizLine() {
    //     ArrayList<DictModel> arrayList = Lists.newArrayListWithExpectedSize(5);
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_HOME_APPLIANCE_MAINTAIN, ProductConsts.BIZ_LINE_HOME_APPLIANCE_MAINTAIN_CN));
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_HOUSEHOLD_MAINTENANCE, ProductConsts.BIZ_LINE_HOUSEHOLD_MAINTENANCE_CN));
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_HOME_APPLIANCE_CLEANING, ProductConsts.BIZ_LINE_HOME_APPLIANCE_CLEANING_CN));
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_HOME_IMPROVEMENT, ProductConsts.BIZ_LINE_HOME_IMPROVEMENT_CN));
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_FACTORY, ProductConsts.BIZ_LINE_FACTORY_CN));
    //     arrayList.add(new DictModel(ProductConsts.BIZ_LINE_NEW_CATEGORY_DEVELOPMENT, ProductConsts.BIZ_LINE_NEW_CATEGORY_DEVELOPMENT_CN));
    //     return arrayList;
    // }

    // /**
    //  * 描述: 获取工程师技术等级名称
    //  *
    //  * @auther tanghongjun
    //  * @since 2019/11/20 10:18
    //  */
    // public static String getBizLineName(int bizLine) {
    //     switch (bizLine) {
    //         case ProductConsts.BIZ_LINE_HOME_APPLIANCE_MAINTAIN:
    //             return ProductConsts.BIZ_LINE_HOME_APPLIANCE_MAINTAIN_CN;
    //         case ProductConsts.BIZ_LINE_HOUSEHOLD_MAINTENANCE:
    //             return ProductConsts.BIZ_LINE_HOUSEHOLD_MAINTENANCE_CN;
    //         case ProductConsts.BIZ_LINE_HOME_IMPROVEMENT:
    //             return ProductConsts.BIZ_LINE_HOME_IMPROVEMENT_CN;
    //         case ProductConsts.BIZ_LINE_FACTORY:
    //             return ProductConsts.BIZ_LINE_FACTORY_CN;
    //         case ProductConsts.BIZ_LINE_HOME_APPLIANCE_CLEANING:
    //             return ProductConsts.BIZ_LINE_HOME_APPLIANCE_CLEANING_CN;
    //         case ProductConsts.BIZ_LINE_NEW_CATEGORY_DEVELOPMENT:
    //             return ProductConsts.BIZ_LINE_NEW_CATEGORY_DEVELOPMENT_CN;
    //         default:
    //             return "";
    //     }
    // }

    /**
     * 翻译业务类型
     *
     * @param bizType
     * @return java.lang.String
     * @author tanbiao
     * @modifier
     * @since 2020/8/19
     */
    public static String translateBizType(String bizType, String split) {
        if (StringUtil.isBlank(bizType)) {
            return "";
        }
        if (StringUtil.isBlank(split)) {
            split = "/";
        }
        String splitStr = split;
        List<Integer> keepTypes = StringUtil.convertStrsToList(bizType);
        StringBuilder sb = new StringBuilder();
        keepTypes.forEach(e -> sb.append(ProductDict.getBizTypeCNENName(e)).append(splitStr));
        return sb.deleteCharAt(sb.length() - 1).toString();

    }

    /**
     * 翻译业务类型-英文名称
     *
     * @param bizType
     * @return java.lang.String
     * @author linfeng
     * @modifier
     * @since 2020/8/19
     */
    public static String translateBizTypeEnglishName(String bizType, String split) {
        if (StringUtil.isBlank(bizType)) {
            return "";
        }
        if (StringUtil.isBlank(split)) {
            split = "/";
        }
        String splitStr = split;
        List<Integer> bizTypes = StringUtil.convertStrsToList(bizType);
        StringBuilder sb = new StringBuilder();
        bizTypes.forEach(e -> sb.append(ProductDict.getBizTypeENName(e)).append(splitStr));
        return sb.deleteCharAt(sb.length() - 1).toString();
    }

    /**
     * 描述:产品类型
     *
     * @return java.util.List<com.zmn.common.dictionary.DictModel>
     * @author yangshuangping
     * @since 2021-7-23
     **/
    public static List<DictModel> listProductTypes() {
        ArrayList<DictModel> arrayList = Lists.newArrayListWithExpectedSize(2);
        arrayList.add(new DictModel(ProductConsts.SERV_PRODUCT_TYPE_CURRENT, ProductConsts.SERV_PRODUCT_TYPE_CURRENT_CN));
        arrayList.add(new DictModel(ProductConsts.SERV_PRODUCT_TYPE_CHANNEL, ProductConsts.SERV_PRODUCT_TYPE_CHANNEL_CN));
        return arrayList;
    }

    /**
     * 描述:产品类型
     *
     * @return java.util.List<com.zmn.common.dictionary.DictModel>
     * @author yangshuangping
     * @since 2021-7-23
     **/
    public static String translateProductType(Integer productType) {
        switch (productType) {
            case ProductConsts.SERV_PRODUCT_TYPE_CURRENT:
                return ProductConsts.SERV_PRODUCT_TYPE_CURRENT_CN;
            case ProductConsts.SERV_PRODUCT_TYPE_CHANNEL:
                return ProductConsts.SERV_PRODUCT_TYPE_CHANNEL_CN;
            default:
                return "";
        }
    }

}
